The field of the invention is industrial digital control systems, and particularly, programmable controllers such as that disclosed in U.S. Pat. No. 3,942,158 issued Mar. 2, 1976, and entitled "Programmable Logic Controller".
Programmable controllers are typically connected to industrial equipment such as assembly lines and machine tools to sequentially operate the equipment in accordance with a stored control program. In programmable controllers such as that disclosed in the above cited patent, for example, the control program is stored in a random access memory and includes instructions which are executed in rapid sequence to examine the condition of selected sensing devices on the controlled equipment and instructions which energize or deenergize selected operating devices on the controlled equipment contingent upon the status of one or more of the examined sensing devices.
Programmable controllers are distinguishable in both structure and application from process controllers which employ general purpose digital computers to control industrial equipment and processes. Whereas the primary function of a process controller may be to monitor a number of analog signals and control a number of analog operating devices, the primary function of programmable controllers has been to monitor large numbers of single-bit digital devices, such as limit switches, and control a large number of single-bit operating devices such as solenoids and motor starters. As a result, the processor, or central logic unit of a programmable controller is typically less complex, less powerful and less costly than the processor of a general purpose computer. On the other hand, special purpose program loaders such as those disclosed in U.S. Pat. Nos. 3,798,612 and 3,813,649 have been developed to facilitate the development and editing of control programs in programmable controllers. These program loaders allow control engineers with little programming training or experience to develop complex control programs for programmable controllers. Once perceived as a substitute for hardwired logic controllers and relay control panels, the programmable controller has grown in size and capability to where it is now also perceived as a substitute for process controllers in many applications.
Programmable controller processors are designed to rapidly execute programmable controller instructions in a control program. The length of the control program, and hence the complexity of the system being controlled, has heretofore been limited to insure that the entire program can be executed, or scanned, within a set time. Such time limits are required to insure that the programmable controller will provide virtually instantaneous response to any change in the status of sensing devices on the controlled system.
There are numerous applications which would require such lengthy control programs that programmable controllers are not presently competitive with process controllers. It has been observed, however, that many of these applications require a few basic control functions which are repeated, but with different parameters. In a test stand for automobile engines, for example, the engines are cycled through a series of steps which are intended to evaluate their performance. These steps may remain the same for all models, but the test parameters may differ. A programmable controller program which will operate such a test stand has in the past included sets of essentially the same controller instructions, one set for each model to be tested. These repeated sets of controller instructions require considerable memory space, and in programmable controllers which do not have "jump" capability, each set must be executed during each scan through the control program.